import {NameChildrenForm} from '@/api/genealogy/nameChildren/types'

export interface NameVO {
  /**
   * 主键id
   */
  id: string | number;

  /**
   * 世代名称
   */
  geneName: string;

  /**
   * 谱名
   */
  name: string;

  /**
   * 姓氏
   */
  lastName: string;

  /**
   * 常用名
   */
  commonName: string;

  /**
   * 别名
   */
  alias: string;

  /**
   * 说明
   */
  mark: string;

  /**
   * 父节点
   */
  parentId: string | number;

  /**
   * 关系(生、抚子等)
   */
  relation: string;

  /**
   * 父母名称
   */
  parentName: string;

  /**
   * 排行
   */
  rankNo: string;

  /**
   * 学校
   */
  school: string;

  /**
   * 专业
   */
  professional: string;

  /**
   * 学历
   */
  degree: string;

  /**
   * 性别
   */
  gender: string;

  /**
   * 职务
   */
  duties: string;

  /**
   * 头衔
   */
  title: string;

  /**
   * 出生日期
   */
  birthday: string;

  /**
   * 状态(去世/在世)
   */
  status: string;

  /**
   * 死亡时间
   */
  deadTime: string;

  /**
   * 葬地
   */
  burialSite: string;

  /**
   * 配偶关系
   */
  personType: string;

  /**
   * 住址
   */
  address?: string;

  /**
   * 配偶主键id
   */
  otherId: string | number;

  /**
   * 族谱id
   */
  geId: string | number;

  /**
   * 子对象
   */
  children: NameVO[];

  wifeList: NameVO[];
}

export interface NameForm extends BaseEntity {
  /**
   * 主键id
   */
  id?: string | number;

  /**
   * 世代名称
   */
  geneName?: number;

  /**
   * 谱名
   */
  name?: string;

  /**
   * 姓氏
   */
  lastName?: string;

  /**
   * 常用名
   */
  commonName?: string;

  /**
   * 别名
   */
  alias?: string;

  /**
   * 说明
   */
  mark?: string;

  /**
   * 父节点
   */
  parentId?: string | number;

  /**
   * 关系(生、抚子等)
   */
  relation?: string;

  /**
   * 父母名称
   */
  parentName?: string;

  /**
   * 排行
   */
  rankNo?: string;

  /**
   * 学校
   */
  school?: string;

  /**
   * 专业
   */
  professional?: string;

  /**
   * 学历
   */
  degree?: string;

  /**
   * 性别
   */
  gender?: string;

  /**
   * 职务
   */
  duties?: string;

  /**
   * 头衔
   */
  title?: string;

  /**
   * 出生日期
   */
  birthday?: string;

  /**
   * 状态(去世/在世)
   */
  status?: string;

  /**
   * 死亡时间
   */
  deadTime?: string;

  /**
   * 葬地
   */
  burialSite?: string;

  /**
   * 配偶关系
   */
  personType?: string;

  /**
   * 配偶主键id
   */
  otherId?: string | number;

  /**
   * 族谱id
   */
  geId?: string | number;

    /**
   * 学历状态
   */
  degreeStatus?: string | number;

  /** 
   * 头像
  */
  avatar?: string;


  avatarUrl?:string,

  /**
   * 住址
   */
  address?: string;

  /**
   * 子女数据
   */
  childrenList?:NameForm[]
  /**
   * 妻子数据
   */
  wifeList?:[]
  

}

export interface NameQuery {

  /**
   * 世代名称
   */
  geneName?: string;

  /**
   * 谱名
   */
  name?: string;

  /**
   * 姓氏
   */
  lastName?: string;

  /**
   * 常用名
   */
  commonName?: string;

  /**
   * 别名
   */
  alias?: string;

  /**
   * 说明
   */
  mark?: string;

  /**
   * 父节点
   */
  parentId?: string | number;

  /**
   * 关系(生、抚子等)
   */
  relation?: string;

  /**
   * 父母名称
   */
  parentName?: string;

  /**
   * 排行
   */
  rankNo?: string;

  /**
   * 学校
   */
  school?: string;

  /**
   * 专业
   */
  professional?: string;

  /**
   * 学历
   */
  degree?: string;

  /**
   * 性别
   */
  gender?: string;

  /**
   * 职务
   */
  duties?: string;

  /**
   * 头衔
   */
  title?: string;

  /**
   * 出生日期
   */
  birthday?: string;

  /**
   * 状态(去世/在世)
   */
  status?: string;

  /**
   * 死亡时间
   */
  deadTime?: string;

  /**
   * 葬地
   */
  burialSite?: string;

  /**
   * 配偶关系
   */
  personType?: string;

  /**
   * 配偶主键id
   */
  otherId?: string | number;

  /**
   * 族谱id
   */
  geId?: string | number;

  /**
   * 日期范围参数
   */
  params?: any;

  /**
   * 住址
   */
  address?: string;
}


/**
 * 族谱树结构
 */
export interface NameTreeVO extends BaseEntity {
  id: number | string;
  label: string;
  parentId: number | string;
  weight: number;
  geId: string;
  children: NameTreeVO[];
  disabled: boolean;
}

/**
 * family tree 族谱目录
 */
export interface FamilyNameTreeVO extends BaseEntity {
  id?: number | string;
  name?: string;
  class?: string[];
  image_url?: number | string;
  children?: FamilyNameTreeVO[];
}



